﻿using Abp.Configuration;
using Abp.MultiTenancy;
using Abp.Runtime.Caching;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
using pandx.Mulan.Authentication.External;
using pandx.Mulan.Authentication.JwtBearer;
using pandx.Mulan.Authorization;
using pandx.Mulan.Authorization.Users;
using pandx.Mulan.Controllers;
using pandx.Mulan.Notifications;

namespace pandx.Mulan.Web.Host.Controllers
{
    [Route("api/[controller]/[action]")]
    public class TokenAuthController : TokenAuthControllerBase
    {
        public TokenAuthController(
            LogInManager logInManager,
            ITenantCache tenantCache,
            AbpLoginResultTypeHelper abpLoginResultTypeHelper,
            TokenAuthConfiguration configuration,
            IExternalAuthConfiguration externalAuthConfiguration,
            IExternalAuthManager externalAuthManager,
            UserRegistrationManager userRegistrationManager,
            IOptions<IdentityOptions> identityOptions,
            ICacheManager cacheManager,
            UserManager userManager,
            SettingManager settingManager,
            IJwtSecurityStampHandler securityStampHandler,
            IAppNotifier appNotifier
            ) : base(
            logInManager, 
            tenantCache, 
            abpLoginResultTypeHelper,
            configuration, 
            externalAuthConfiguration, 
            externalAuthManager, 
            userRegistrationManager, 
            identityOptions,
            cacheManager, 
            userManager, 
            settingManager, 
            securityStampHandler,
            appNotifier)
        {
        }
    }
}